using System;
using System.Collections;
using System.Collections.Generic;

using QLKS.DataLayer.Base;

namespace QLKS.DataLayer.BusinessObjects
{
    public partial class KhachHang : BusinessBase<int>
    {
        #region Declarations

		private string _email = null;
		private string _hoTenKhachHang = String.Empty;
		private System.DateTime? _namSinh = null;
		private bool? _gioiTinh = null;
		private string _cmnd = String.Empty;
		private string _diaChi = null;
		private string _city = null;
		private string _zipCode = null;
		private string _country = null;
		private string _homePhone = null;
		private string _fax = null;
		private string _cellPhone = null;
		private bool? _isActive = null;
		
		private LoaiKhach _loaiKhach = null;
		
		private IList<CTPhieuThuePhong> _cTPhieuThuePhongs = new List<CTPhieuThuePhong>();
		
		#endregion

        #region Constructors

        public KhachHang() { }

        #endregion

        #region Methods

        public override int GetHashCode()
        {
            System.Text.StringBuilder sb = new System.Text.StringBuilder();
            
            sb.Append(this.GetType().FullName);
			sb.Append(_email);
			sb.Append(_hoTenKhachHang);
			sb.Append(_namSinh);
			sb.Append(_gioiTinh);
			sb.Append(_cmnd);
			sb.Append(_diaChi);
			sb.Append(_city);
			sb.Append(_zipCode);
			sb.Append(_country);
			sb.Append(_homePhone);
			sb.Append(_fax);
			sb.Append(_cellPhone);
			sb.Append(_isActive);

            return sb.ToString().GetHashCode();
        }

        #endregion

        #region Properties

		public virtual string Email
        {
            get { return _email; }
			set
			{
				OnEmailChanging();
				_email = value;
				OnEmailChanged();
			}
        }
		partial void OnEmailChanging();
		partial void OnEmailChanged();
		
		public virtual string HoTenKhachHang
        {
            get { return _hoTenKhachHang; }
			set
			{
				OnHoTenKhachHangChanging();
				_hoTenKhachHang = value;
				OnHoTenKhachHangChanged();
			}
        }
		partial void OnHoTenKhachHangChanging();
		partial void OnHoTenKhachHangChanged();
		
		public virtual System.DateTime? NamSinh
        {
            get { return _namSinh; }
			set
			{
				OnNamSinhChanging();
				_namSinh = value;
				OnNamSinhChanged();
			}
        }
		partial void OnNamSinhChanging();
		partial void OnNamSinhChanged();
		
		public virtual bool? GioiTinh
        {
            get { return _gioiTinh; }
			set
			{
				OnGioiTinhChanging();
				_gioiTinh = value;
				OnGioiTinhChanged();
			}
        }
		partial void OnGioiTinhChanging();
		partial void OnGioiTinhChanged();
		
		public virtual string Cmnd
        {
            get { return _cmnd; }
			set
			{
				OnCmndChanging();
				_cmnd = value;
				OnCmndChanged();
			}
        }
		partial void OnCmndChanging();
		partial void OnCmndChanged();
		
		public virtual string DiaChi
        {
            get { return _diaChi; }
			set
			{
				OnDiaChiChanging();
				_diaChi = value;
				OnDiaChiChanged();
			}
        }
		partial void OnDiaChiChanging();
		partial void OnDiaChiChanged();
		
		public virtual string City
        {
            get { return _city; }
			set
			{
				OnCityChanging();
				_city = value;
				OnCityChanged();
			}
        }
		partial void OnCityChanging();
		partial void OnCityChanged();
		
		public virtual string ZipCode
        {
            get { return _zipCode; }
			set
			{
				OnZipCodeChanging();
				_zipCode = value;
				OnZipCodeChanged();
			}
        }
		partial void OnZipCodeChanging();
		partial void OnZipCodeChanged();
		
		public virtual string Country
        {
            get { return _country; }
			set
			{
				OnCountryChanging();
				_country = value;
				OnCountryChanged();
			}
        }
		partial void OnCountryChanging();
		partial void OnCountryChanged();
		
		public virtual string HomePhone
        {
            get { return _homePhone; }
			set
			{
				OnHomePhoneChanging();
				_homePhone = value;
				OnHomePhoneChanged();
			}
        }
		partial void OnHomePhoneChanging();
		partial void OnHomePhoneChanged();
		
		public virtual string Fax
        {
            get { return _fax; }
			set
			{
				OnFaxChanging();
				_fax = value;
				OnFaxChanged();
			}
        }
		partial void OnFaxChanging();
		partial void OnFaxChanged();
		
		public virtual string CellPhone
        {
            get { return _cellPhone; }
			set
			{
				OnCellPhoneChanging();
				_cellPhone = value;
				OnCellPhoneChanged();
			}
        }
		partial void OnCellPhoneChanging();
		partial void OnCellPhoneChanged();
		
		public virtual bool? IsActive
        {
            get { return _isActive; }
			set
			{
				OnIsActiveChanging();
				_isActive = value;
				OnIsActiveChanged();
			}
        }
		partial void OnIsActiveChanging();
		partial void OnIsActiveChanged();
		
		public virtual LoaiKhach LoaiKhach
        {
            get { return _loaiKhach; }
			set
			{
				OnLoaiKhachChanging();
				_loaiKhach = value;
				OnLoaiKhachChanged();
			}
        }
		partial void OnLoaiKhachChanging();
		partial void OnLoaiKhachChanged();
		
		public virtual IList<CTPhieuThuePhong> CTPhieuThuePhongs
        {
            get { return _cTPhieuThuePhongs; }
            set
			{
				OnCTPhieuThuePhongsChanging();
				_cTPhieuThuePhongs = value;
				OnCTPhieuThuePhongsChanged();
			}
        }
		partial void OnCTPhieuThuePhongsChanging();
		partial void OnCTPhieuThuePhongsChanged();
		
        #endregion
    }
}
